home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / hf^k-7.dms / in.adf / envWWW21 / www / arexx / bookmark.ged < prev    next >
Encoding:
Text File  |  1996-01-19  |  3.8 KB  |  193 lines

  1. /* $VER: 1.0, ©1996 Dietmar Eilert. Bookmark management */
  2.  
  3. OPTIONS RESULTS                             /* enable return codes     */
  4. arg mode
  5.  
  6. if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
  7.     address 'GOLDED.1'
  8.  
  9. 'LOCK CURRENT RELEASE=4'                    /* lock GUI, gain access   */
  10.  
  11. if (RC ~= 0) then
  12.     exit
  13.  
  14. OPTIONS FAILAT 6                            /* ignore warnings         */
  15.  
  16. SIGNAL ON SYNTAX                            /* ensure clean exit       */
  17.  
  18. /* ------------------------ INSERT YOUR CODE HERE: ------------------- */
  19.  
  20. if (mode = "ADD") then do
  21.  
  22.     'QUERY BLOCK'
  23.  
  24.     if (RESULT = 0) then do
  25.  
  26.         'REQUEST STATUS="Tip: Mark URL before you use this function"'
  27.  
  28.         NEWURL="http://"
  29.     end
  30.     else do
  31.  
  32.         'FIND BLOCK'
  33.  
  34.         'QUERY FIND VAR=NEWURL'
  35.     end
  36.  
  37.     'FIX VAR=NEWURL'
  38.  
  39.     'REQUEST STRING TITLE="Add to address book: Bookmark name" VAR=NEWNAME OLD="unnamed"'
  40.  
  41.     call loadbookmarks
  42.  
  43.     /* add bookmark to bookmarks, save bookmark file */
  44.  
  45.     if ((RC = 0) & (NEWNAME ~= "")) then do
  46.  
  47.         'REQUEST STRING TITLE="Add to address book: URL" OLD="' || NEWURL || '" VAR=NEWURL'
  48.  
  49.         if (RC = 0) then do
  50.  
  51.             ENTRIES = ENTRIES + 1
  52.  
  53.             BOOKMARK.ENTRIES.ENTRY_NAME = NEWNAME
  54.             BOOKMARK.ENTRIES.ENTRY_URL  = NEWURL
  55.  
  56.             call savebookmarks
  57.         end
  58.     end
  59. end
  60. else if (mode = "DEL") then do
  61.  
  62.     call loadbookmarks
  63.  
  64.     if (ENTRIES = 0) then
  65.  
  66.         'REQUEST PROBLEM="Bookmark file empty"'
  67.  
  68.     else do
  69.  
  70.         /* show list of available bookmarks */
  71.  
  72.         COMMAND
  73.  
  74.         /* remove bookmark from bookmarks, save bookmark file */
  75.  
  76.         if (RC = 0) then do
  77.  
  78.             SELECTION = RESULT
  79.  
  80.             do ENTRY = 1 to ENTRIES
  81.  
  82.                 if (BOOKMARK.ENTRY.ENTRY_NAME = SELECTION) then do
  83.  
  84.                     BOOKMARK.ENTRY.ENTRY_NAME = BOOKMARK.ENTRIES.ENTRY_NAME
  85.                     BOOKMARK.ENTRY.ENTRY_URL  = BOOKMARK.ENTRIES.ENTRY_URL
  86.  
  87.                     ENTRIES = ENTRIES - 1
  88.                 end
  89.             end
  90.  
  91.             call savebookmarks
  92.         end
  93.     end
  94. end
  95. else do
  96.  
  97.     call loadbookmarks
  98.  
  99.     if (ENTRIES = 0) then
  100.  
  101.         'REQUEST PROBLEM="Bookmark file empty"'
  102.  
  103.     else do
  104.  
  105.         /* show list of available bookmarks */
  106.  
  107.         COMMAND
  108.  
  109.         /* insert URL of selected bookmark into text */
  110.  
  111.         if (RC = 0) then do
  112.  
  113.             SELECTION = RESULT
  114.  
  115.             do ENTRY = 1 to ENTRIES
  116.  
  117.                 if (BOOKMARK.ENTRY.ENTRY_NAME = SELECTION) then do
  118.  
  119.                     ADDRESS = BOOKMARK.ENTRY.ENTRY_URL
  120.  
  121.                     'FIX VAR=ADDRESS'
  122.  
  123.                     'TEXT T="' || ADDRESS || '"'
  124.                 end
  125.             end
  126.         end
  127.     end
  128. end
  129.  
  130. /* ---------------------------- END OF YOUR CODE --------------------- */
  131.  
  132. 'UNLOCK' /* VERY important: unlock GUI */
  133.  
  134. exit
  135.  
  136. SYNTAX:
  137.  
  138. SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
  139.  
  140. 'UNLOCK'
  141.  
  142. exit
  143.  
  144. /* ------------------------------ PROCEDURES ------------------------- */
  145.  
  146. loadbookmarks:
  147.  
  148.     ENTRIES = 0
  149.  
  150.     if (open('bookmarks', 'golded:tools/www/bookmarks', 'R')) then do
  151.  
  152.         COMMAND = 'REQLIST SORT '
  153.  
  154.         /* read bookmark file */
  155.  
  156.         do forever
  157.  
  158.             NAME = readln('bookmarks')
  159.  
  160.             if (eof('bookmarks')) then
  161.  
  162.                 break
  163.  
  164.             COMMAND = COMMAND || '"' ||  NAME || '" '
  165.  
  166.             ENTRIES = ENTRIES + 1
  167.  
  168.             BOOKMARK.ENTRIES.ENTRY_NAME = NAME
  169.             BOOKMARK.ENTRIES.ENTRY_URL  = readln('bookmarks')
  170.  
  171.         end
  172.  
  173.         OK = close('bookmarks')
  174.     end
  175.     else
  176.         'REQUEST PROBLEM="Bookmark file not found"'
  177.  
  178.     return
  179.  
  180. savebookmarks:
  181.  
  182.     if (open('bookmarks', 'golded:tools/www/bookmarks', 'W')) then do
  183.  
  184.         do ENTRY = 1 to ENTRIES
  185.  
  186.             OK = writeln('bookmarks', BOOKMARK.ENTRY.ENTRY_NAME)
  187.             OK = writeln('bookmarks', BOOKMARK.ENTRY.ENTRY_URL)
  188.  
  189.         end
  190.  
  191.         OK = close('bookmarks')
  192.     end
  193.